package com.ruoyi.web.controller.core;

import org.springframework.ui.ModelMap;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.PageQO;
import com.ruoyi.common.core.page.TableDataInfo;

/**
 * casetypeController
 * 
 * @author riverbo
 * @date 2024-05-06
 */
public interface IBaseCtroller<T> {

	public String query() throws Exception;

	public String choice() throws Exception;

	public TableDataInfo list(T t) throws Exception;
	
	public TableDataInfo query(T t, PageQO page) throws Exception;
	
	//public TableDataInfo queryVO(T t, PageQO page) throws Exception;
	
	//public <A> TableDataInfo query(T t, Class<A> clz, PageQO page);

	public AjaxResult export(T t) throws Exception;
	
//	public T checkNameUnique(String name) throws Exception;
	
//	public Long checkIdNameUnique(T t) throws Exception;
	
	public Boolean checkNameUnique(T t) throws Exception;
	
//	public Boolean existsIdNameUnique(T t) throws Exception;

	//public String add() throws Exception;
	
	public String add(ModelMap mmap) throws Exception;

	public AjaxResult addSave(T t) throws Exception;

	public String edit(Long id, ModelMap mmap) throws Exception;

	public AjaxResult editSave(T t) throws Exception;

	public AjaxResult remove(String ids) throws Exception;
	
}